home *** CD-ROM | disk | FTP | other *** search
- /* ******************************************************************** */
- /* C code generated by: */
- /* Visual Arts Version 2.1 */
- /* Copyright 1994-95 Danny Y. Wong All rights reserved */
- /* Calgary, Alberta (CANADA) */
- /* Partial of the code is copyright by Jaba Development */
- /* ******************************************************************** */
-
- #include <VisualArts.h>
- #include <clib/VisualArts_protos.h>
-
- #define ID_new 0
- #define ID_quit 1
- #define ID_selectmodel 2
- #define ID_Import 3
- #define ID_comp1 4
- #define ID_comp 5
- #define ID_employees 6
- #define ID_level 7
- #define ID_cars 8
- #define ID_computer 9
- #define ID_color 10
-
- #define GadToolsNumGads 11
-
- #include "GadTools_func.c"
-
- int newObj(struct VAobject VAObject);
- int quitObj(struct VAobject VAObject);
- int selectmodelObj(struct VAobject VAObject);
- int ImportObj(struct VAobject VAObject);
- int comp1Obj(struct VAobject VAObject);
- int compObj(struct VAobject VAObject);
- int employeesObj(struct VAobject VAObject);
- int levelObj(struct VAobject VAObject);
- int carsObj(struct VAobject VAObject);
- int computerObj(struct VAobject VAObject);
- int colorObj(struct VAobject VAObject);
-
- int GadToolsIDCMP_MOUSEBUTTONS (struct VAobject VAObject);
- int GadToolsIDCMP_MOUSEMOVE (struct VAobject VAObject);
- int GadToolsIDCMP_INTUITICKS (struct VAobject VAObject);
- int GetPubScreen(void);
- void ClosePubScreen(void);
- int OpenGadToolsWindow(char windtitle[]);
- void CloseGadToolsWindow(void);
- int GadToolsHandler(void);
- int GadToolsMainHandler(void);
- void DrawGadToolsObjs(void);
- int main(int argc, char *argv[]);
-
- UBYTE *PubScrName = "Workbench";
- struct DrawInfo *ScrDrawInfo = NULL;
- APTR VisualInfo = NULL;
- struct Screen *Scr = NULL;
- struct Window *GadToolsWnd = NULL;
- struct Menu *GadToolsMenus = NULL;
- struct Gadget *GadToolsGList = NULL;
- struct Gadget *GadToolsGadgets[GadToolsNumGads];
- struct IntuiMessage GadToolsMsg;
- UWORD GadToolsLeft = 88;
- UWORD GadToolsTop = 34;
- UWORD GadToolsWidth = 421;
- UWORD GadToolsHeight = 136;
- struct NewMenu GadToolsNewMenu1[] = {
-
- { NM_TITLE, "Project", 0 , 0 , 0 , 0,},
- { NM_ITEM, "About", 0 , 0L , 0 , (APTR)AboutMenuObj,},
- { NM_ITEM, NM_BARLABEL, 0 , 0 , 0 , 0,},
- { NM_ITEM, "Open", 0 , 0L , 0 , (APTR)OpenMenuObj,},
- { NM_ITEM, "Save", 0 , 0L , 0 , (APTR)SaveMenuObj,},
- { NM_ITEM, NM_BARLABEL, 0 , 0 , 0 , 0,},
- { NM_ITEM, "Quit", 0 , 0L , 0 , (APTR)QuitMenuObj,},
-
- { NM_TITLE, "Edit", 0 , 0 , 0 , 0,},
- { NM_ITEM, "Undo", "Z", 0L , 0, (APTR)UndoMenuObj,},
- { NM_ITEM, NM_BARLABEL, 0 , 0 , 0 , 0,},
- { NM_ITEM, "Copy", "C", 0L , 0, (APTR)CopyMenuObj,},
- { NM_ITEM, "Cut", "X", 0L , 0, (APTR)CutMenuObj,},
- { NM_ITEM, "Paste", "V", 0L , 0, (APTR)PasteMenuObj,},
-
- { NM_END, NULL, 0 , 0 , 0 , 0,},
- };
-
-
- /* stringinfo for WB 1.x style string/integer gadgets */
-
- struct StringExtend GadToolsStrExt; /* Extend String Gadget */
- struct TextAttr topaz8 = { (STRPTR)"topaz.font", 8, 0x00, 0x01 };
- struct TextAttr topaz800 = { (STRPTR)"topaz.font", 8, 0x00, 0x00 };
-
- UBYTE *carsLabels[] = {
- (UBYTE *)"GMC",
- (UBYTE *)"Ford",
- (UBYTE *)"Chrysler",
- (UBYTE *)"Toyota",
- (UBYTE *)"Honda",
- (UBYTE *)"Nissa",
- NULL
- };
-
- UBYTE *computerLabels[] = {
- (UBYTE *)"Amiga",
- (UBYTE *)"Apple",
- (UBYTE *)"IBM",
- (UBYTE *)"SUN",
- (UBYTE *)"HP",
- NULL
- };
-
- WORD GadToolsGadTypes[] = {
- BUTTON_KIND,
- BUTTON_KIND,
- STRING_KIND,
- CHECKBOX_KIND,
- MX_KIND,
- CYCLE_KIND,
- SLIDER_KIND,
- SCROLLER_KIND,
- LISTVIEW_KIND,
- LISTVIEW_KIND,
- PALETTE_KIND,
- };
-
- struct NewGadget GadToolsNGads[] = {
- 186, 1, 97, 12, (UBYTE *)"New _Model",&topaz800, ID_new, PLACETEXT_IN, NULL, (APTR)newObj,
- 323, 66, 72, 11, (UBYTE *)"Ne_xt",&topaz800, ID_quit, PLACETEXT_IN, NULL, (APTR)quitObj,
- 4, 45, 174, 12, (UBYTE *)"", &topaz800, ID_selectmodel, PLACETEXT_LEFT, NULL, (APTR)selectmodelObj,
- 257, 15, 26, 11, (UBYTE *)"Import", &topaz800, ID_Import, PLACETEXT_LEFT, NULL, (APTR)ImportObj,
- 324, 2, 17, 9, (UBYTE *)"", &topaz800, ID_comp1, PLACETEXT_RIGHT, NULL, (APTR)comp1Obj,
- 194, 63, 89, 14, (UBYTE *)"Company", &topaz800, ID_comp, PLACETEXT_LEFT, NULL, (APTR)compObj,
- 130, 105, 153, 12, (UBYTE *)"# Employees ", &topaz800, ID_employees, PLACETEXT_LEFT, NULL, (APTR)employeesObj,
- 289, 1, 23, 117, (UBYTE *)"", &topaz800, ID_level, PLACETEXT_LEFT, NULL, (APTR)levelObj,
- 4, 1, 174, 44, (UBYTE *)"", &topaz800, ID_cars, PLACETEXT_ABOVE, NULL, (APTR)carsObj,
- 6, 63, 109, 36, (UBYTE *)"", &topaz800, ID_computer, PLACETEXT_ABOVE, NULL, (APTR)computerObj,
- 130, 78, 152, 25, (UBYTE *)"", &topaz800, ID_color, PLACETEXT_ABOVE, NULL, (APTR)colorObj,
- };
-
- ULONG GadToolsNTags[] = {
- (GT_Underscore), '_', TAG_DONE,
- (GT_Underscore), '_', TAG_DONE,
- GTST_MaxChars, 255, (STRINGA_Justification), GACT_STRINGLEFT, TAG_DONE,
- TAG_DONE,
- (GTMX_Labels), (ULONG)&carsLabels[0], (GTMX_Active), 0, (GTMX_Spacing), 2, TAG_DONE,
- (GTCY_Labels), (ULONG)&computerLabels[0], (GTCY_Active), 3, TAG_DONE,
- (GTSL_Min), 0, (GTSL_Max), 100, (GTSL_Level), 10, (GTSL_LevelFormat), (ULONG)"%l3d", (GTSL_MaxLevelLen), 0, (GTSL_LevelPlace), PLACETEXT_LEFT, (GA_Immediate), TRUE, (GA_RelVerify), TRUE, (PGA_Freedom), LORIENT_HORIZ, TAG_DONE,
- (GTSC_Top), 0, (GTSC_Total), 1210, (GTSC_Visible), 330, (GTSC_Arrows), 10, (GA_Immediate), TRUE, (GA_RelVerify), TRUE, (PGA_Freedom), LORIENT_VERT, TAG_DONE,
- (GTLV_ShowSelected), 99, (GTLV_Labels), NULL, (GTLV_Top), 0, (GTLV_ScrollWidth), 16, (LAYOUTA_Spacing), 2, TAG_DONE,
- (GTLV_Labels), NULL, (GTLV_Top), 0, (GTLV_ReadOnly), TRUE, (GTLV_ScrollWidth), 16, (LAYOUTA_Spacing), 0, TAG_DONE,
- (GTPA_Depth), 2, (GTPA_Color), 1, (GTPA_ColorOffset), 0, TAG_DONE,
- };
-
-
- int GetPubScreen(void)
- {
- if (!(Scr = LockPubScreen(PubScrName)))
- return(1L);
-
- if (!(VisualInfo = GetVisualInfo(Scr, TAG_DONE)))
- return(2L);
-
- if (!(ScrDrawInfo = GetScreenDrawInfo(Scr)))
- return(3L);
- return(0L);
- }
-
- void ClosePubScreen(void)
- {
- if (VisualInfo)
- FreeVisualInfo(VisualInfo);
- if (Scr)
- UnlockPubScreen(NULL, Scr);
- if (ScrDrawInfo)
- FreeScreenDrawInfo(Scr, ScrDrawInfo);
- }
-
- int OpenGadToolsWindow(char windtitle[80])
- {
- struct NewGadget NewGad;
- struct Gadget *Gad;
- register UWORD i, j;
- UWORD offsetx = Scr->WBorLeft;
- UWORD offsety = Scr->WBorTop + Scr->Font->ta_YSize + 1;
- int k=0;
- int LVStrGads[] = {ID_selectmodel, -1 };
-
-
- GadToolsStrExt.Font = NULL;
- GadToolsStrExt.Pens[0] = 2;
- GadToolsStrExt.Pens[1] = 0;
- GadToolsStrExt.ActivePens[0] = 3;
- GadToolsStrExt.ActivePens[1] = 2;
- GadToolsStrExt.InitialModes = 0;
- GadToolsStrExt.EditHook = NULL;
- GadToolsStrExt.WorkBuffer = NULL;
-
- if (!(Gad = CreateContext(&GadToolsGList)))
- return(1L);
-
- for (i=0, j=0; i < GadToolsNumGads; i++)
- {
- CopyMem((char *)&GadToolsNGads[i], (char *)&NewGad, (long)sizeof(struct NewGadget));
-
- NewGad.ng_VisualInfo = VisualInfo;
- NewGad.ng_LeftEdge += offsetx;
- NewGad.ng_TopEdge += offsety;
-
- if (GadToolsNTags[j] == GTLV_ShowSelected && GadToolsNTags[j+1] == 99)
- GadToolsNTags[j+1] = (ULONG)GadToolsGadgets[LVStrGads[k++]];
- GadToolsGadgets[i] = Gad = CreateGadgetA((ULONG)GadToolsGadTypes[i], Gad, &NewGad,
- (struct TagItem *)&GadToolsNTags[j]);
- if (GadToolsGadTypes[i] == STRING_KIND || GadToolsGadTypes[i] == INTEGER_KIND)
- {
- GadToolsGadgets[i]->Flags |= GFLG_STRINGEXTEND;
- ((struct StringInfo *)GadToolsGadgets[i]->SpecialInfo)->Extension = &GadToolsStrExt;
- }
- while (GadToolsNTags[j])
- j +=2;
- j++;
- if (!Gad)
- return(2L);
- }
- GadToolsGadgets[0]->Activation |= GACT_TOGGLESELECT;
-
- if (!(GadToolsMenus = CreateMenus(GadToolsNewMenu1,
- GTMN_FrontPen, 0L, TAG_DONE)))
- return(3L);
- LayoutMenus(GadToolsMenus, VisualInfo, GTMN_TextAttr,
- &topaz800, GTMN_NewLookMenus, TRUE, TAG_DONE);
-
- if (!(GadToolsWnd = OpenWindowTags(NULL,
- WA_Left, GadToolsLeft,
- WA_Top, GadToolsTop,
- WA_Width, GadToolsWidth,
- WA_Height, GadToolsHeight + kWindowOffSetY,
- WA_NewLookMenus, TRUE,
- WA_IDCMP, IDCMP_CLOSEWINDOW | IDCMP_NEWSIZE | IDCMP_MOUSEBUTTONS | IDCMP_MOUSEMOVE | IDCMP_GADGETUP | IDCMP_GADGETDOWN | IDCMP_VANILLAKEY | IDCMP_INTUITICKS | IDCMP_MENUPICK ,
- WA_Flags, WFLG_CLOSEGADGET | WFLG_DEPTHGADGET | WFLG_SMART_REFRESH |
- WFLG_ACTIVATE | WFLG_DRAGBAR ,
- WA_Gadgets, GadToolsGList,
- WA_Title, windtitle,
- WA_ScreenTitle, "Visual Arts V2.2 Copyright 1994-95 Danny Y. Wong All Rights Reserved.",
- WA_PubScreen, Scr,
- WA_MinWidth, 160,
- WA_MinHeight, 50,
- WA_MaxWidth, 640,
- WA_MaxHeight, 200,
- TAG_DONE)))
- return(3L);
-
- CreateGadToolsLists();
- SetMenuStrip(GadToolsWnd, GadToolsMenus);
- DrawGadToolsObjs();
- GT_RefreshWindow(GadToolsWnd, NULL);
- RefreshGadgets(GadToolsGadgets[0], GadToolsWnd, NULL);
- GT_SetGadgetAttrs(GadToolsGadgets[8], GadToolsWnd, NULL,
- GTLV_Labels, GadToolsLists[0], TAG_END);
- GT_SetGadgetAttrs(GadToolsGadgets[9], GadToolsWnd, NULL,
- GTLV_Labels, GadToolsLists[1], TAG_END);
- return(0L);
- }
-
- void CloseGadToolsWindow(void)
- {
- if (GadToolsWnd)
- CloseWindow(GadToolsWnd);
- if (GadToolsGList)
- FreeGadgets(GadToolsGList);
- if (GadToolsMenus)
- {
- ClearMenuStrip(GadToolsWnd);
- FreeMenus(GadToolsMenus);
- }
- }
-
- int GadToolsHandler(void)
- {
- struct MenuItem *menu;
- struct IntuiMessage *msg;
- struct VAobject VAObject;
- int running = 1;
- int (*func)(struct VAobject VAObject);
- ULONG class;
- UWORD code;
-
- while (msg=GT_GetIMsg(GadToolsWnd->UserPort))
- {
- CopyMem((char *)msg, (char *)&GadToolsMsg, (long)sizeof(struct IntuiMessage));
- class = msg->Class;
- code = msg->Code;
-
- VAObject.va_Window = (struct Window *)GadToolsWnd;
- VAObject.va_Gadget = (struct Gadget *)msg->IAddress;
- VAObject.va_IntuiMsg = (struct IntuiMessage *)msg;
- VAObject.va_Flags = 0;
- VAObject.va_UserData = 0;
-
- GT_ReplyIMsg(msg);
- switch(class)
- {
-
- case IDCMP_MOUSEBUTTONS :
- running = GadToolsIDCMP_MOUSEBUTTONS (VAObject);
- break;
-
- case IDCMP_MOUSEMOVE :
- running = GadToolsIDCMP_MOUSEMOVE (VAObject);
- break;
-
- case IDCMP_INTUITICKS :
- running = GadToolsIDCMP_INTUITICKS (VAObject);
- break;
-
- case IDCMP_NEWSIZE:
- break;
-
- case IDCMP_CLOSEWINDOW:
- return(0);
- break;
-
- case IDCMP_GADGETUP:
- func = (void *)((struct Gadget *)GadToolsMsg.IAddress)->UserData;
- if (func != NULL)
- running = func(VAObject);
- break;
-
-
- case IDCMP_VANILLAKEY:
- switch(code)
- {
- case 'M':
- GadToolsGadgets[0]->Flags ^= GFLG_SELECTED;
- RefreshGList(GadToolsGadgets[0], GadToolsWnd, NULL, 1);
- break;
- case 'x':
- ButtonSelected(GadToolsWnd, GadToolsGadgets[1]);
- break;
- }
- break;
-
- case IDCMP_MENUPICK:
- while ( code != MENUNULL)
- {
- VAObject.va_Window = (struct Window *)GadToolsWnd;
- VAObject.va_Gadget = NULL;
- VAObject.va_IntuiMsg = (struct IntuiMessage *)msg;
- VAObject.va_Flags = NULL;
- VAObject.va_UserData = 0;
- menu = ItemAddress(GadToolsMenus, code);
- func = (void *)(GTMENUITEM_USERDATA(menu));
- running = func(VAObject);
- code = menu->NextSelect;
- }
- break;
- }
- }
- return(running);
- }
-
- void DrawGadToolsObjs(void)
- {
- GadToolsDrawRects(GadToolsWnd);
-
- }
-
- int GadToolsMainHandler(void)
- {
- int running = 1;
- ULONG windsig, signals;
-
- windsig = 1L << GadToolsWnd->UserPort->mp_SigBit;
-
- while (running == 1)
- {
- signals = Wait( windsig );
- if (signals & windsig)
- {
- running = GadToolsHandler();
- }
- }
- return(running);
- }
-
- int main(int argc, char *argv[])
- {
- int rc;
-
- if (!(GetPubScreen()))
- {
- for (rc=0; rc < 2; rc++)
- GadToolsLists[rc]=GetNewList();
- if (!(OpenGadToolsWindow("GadTools & Menu Demo")))
- {
- rc = GadToolsMainHandler();
- CloseGadToolsWindow();
- }
- for (rc=0; rc < 2; rc++)
- FreeList(GadToolsLists[rc]);
- ClosePubScreen();
- }
- return(0L);
- }
-